mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 17:56:16 +00:00
Developer reference/guide updates to this point * Update some reference documents - Adjust ref_intro to reference Dash - Start updating p2p network ref - Adjust some items in references.md to point to Dash URLs * Update P2P networking protocol versions and message headers sections Update subheading-links Update more items in references.md * Update inventories to include Dash specific items - Update references.md with them also Update disclaimer (Bitcoin -> Dash) * Remove reference to bitcoin mailing list from ref_intro * Add Spork/GetSporks message details Add placeholders for Dash specific messages - Added subsections for InstantSend, PrivateSend, Masternodes, and Governance * Some Bitcoin->Dash conversions - Update title / section name for Dev Doc/Dev Reference - Updated favicon * Updates for the Data Network section of P2P reference * Added Alert message details from Bitcoin back and removed feefilter * More updates for Control Messages section of P2P network - Bitcoin->Dash reference changes - Reject and Version message updates * InstantSend subsection of P2P reference detail - Added ix, txlvote message details and associated references * Governance subsection (P2P) - Start adding govobj, govobjvote details - Add spork references * Missed spork xref in previous * Governance (P2P) updates - Add details to govobjvote and govsync * Governance object P2P messages - Add additional description/details * PrivateSend P2P messages - Added details for dsa, dsc, dsf, dsi, dsq, dss, dssu, and dstx messages - Added references also - Hexdump examples for all but dsi and dss * PrivateSend P2P minor updates * Masternode P2P messages - Add descriptions - Add hexdump details * Masternode P2P messages (dseg, mnb, mnget, mnp, mnv, mnw, mnwb, ssc) - Add reference/crossref entries - Add message structure * P2P messages - minor formatting and corrections * Block chain reference - Version info updates * Update Block Chain reference (Headers) - Update version details - Update block reward info * Update Transactions reference - Add some Dash specific updates * Minor Transactions reference change * RPC reference updates * RPC reference updates - Added/removed commands to match available Dash commands * Core API updates * Renamed devdocs/bitcoin-core to dash-core - Updated developer-reference.md to point at new location * Update filename to use dash-core instead of bitcoin-core * Add Dash-specific GetAddressBalance RPC command and associated updates Update RPC quick reference list * Added cross reference/reference placeholders for remaining GetAddress... RPC commands Added RPC template placeholder files for remaining GetAddress... commands * Scripts for environment setup and frequently used builds * Add details for GetAddressDeltas/Mempool RPCs Update path in Makefile bitcoin-core -> dash-core * Add GetAddressTxids/Utxos details Update minor formatting, etc. for GetAddressBalance/Deltas/Mempool Changed reference to Dash Core and updated denominations for Dash * Misc minor cleanup * Work on updating existing Block Chain RPCs - GetBestBlockHash, GetBlock, GetBlockChainInfo, GetBlockCount, GetBlockHash * Continue updating existing Block Chain RPCs - GetBlockHeader, GetChainTips, GetDifficulty, GetMemPoolInfo, GetRawMemPool * Update RPCs quick-ref - Added descriptions for Dash - Updated description for Bitcoin related items for clarity * Comment out content of non-implemented Block chain RPCs (GetMemPoolAncestors, GetMemPoolDescendants, GetMemPoolEntry, PreciousBlock, PruneBlockChain) * Continue updating existing Block Chain RPCs - GetTxOut, GetTxOutProof, GetTxOutSetInfo, VerifyChain, VerifyTxOutProof Update previous block hash type to indicate X11 instead of double SHA256 * Add script to create basic RPC md file Set up empty GetBlockHashes/Headers and GetSpentInfo RPCs * Add GetBlockhashes details Minor correction in Empty RPC generation script * Add GetBlockHeaders details Minor formatting updates * Update Address Index related RPCs to indicate the necessity of enabling addressindex to use them * Actual details of GetBlockHeaders * Add details for GetSpentInfo * Update existing Control RPCs (GetInfo, Help, Stop) * Add Debug RPC * Expand empty RPC generation script to add example section and fix format * Added empty RPC files and cross-ref details for all Dash RPCs * Add details for some Dash RPCs - GetGovernanceInfo, GetPoolInfo, GetSuperblockBudget * Add details for MasternodeList RPC (Dash section) * Add details for MnSync RPC (Dash section) * Dash RPC updates - Add Result section to MasternodeList - Formatting updates to MnSync * Expand script to add placeholders for parameters/resuls/example * Add details for PrivateSend RPC (Dash section) * Update Generating RPCs - Added details back for GetGenerate/SetGenerate which were deprecated in Bitcoin * Formatting and example updates * Add result detail and example to GetBlockTemplate * Update existing Mining RPCs - GetMiningInfo, GetNetworkHashPs, PrioritiseTransaction, SubmitBlock * Minor formatting updates * Update most existing Network RPCs - AddNode, ClearBanned, DisconnectNode, GetAddedNodeInfo, GetConnectionCount, GetNetTotals,GetNetworkInfo, GetPeerInfo, ListBanned, Ping, SetBan - Added some norefs as needed (Network RPCs only) * Misc cleanup * SetNetworkActive (Network RPC) * Misc updates - Change logo - Disable some headers (alert, donation) - Disable footer * Governance updates - Add description of govsync to P2P guide - Updates to P2P reference * Governance - Add governance message SVG image - Typo fixes * Dseg updates - Added clarifying details regarding how to request single/all nodes - Ban warning * Minor governance updates * Governance updates / MN sync - Correct some reference links - Add MN sync info to guide - Update dseg, mnget, ssc, and govsync messages to include more detail * Governance updates - Guide updated to show both stages of govsync - Reference - Correcte ssc typo and add sync item detail - Update govobjvote to include detail about propagation - Update govsync details * Governance updates - More clarification on govsync (guide and reference) * Raw Transaction RPC - Previously uncommitted CreateRawTransaction update * Dash RPC (Gobject) - Add details for count and get sub-commands Also added description for govobj types * P2P messages - Spork updated to include verification details and a hexdump Minor typo / note updates * P2P Message - mnv - Draft details regarding use and operation * P2P message (mnv) - Additional detail updates based on info from Udjin Minor update to mnp * Guide - Masternode payment - Add section and start putting in details * P2P Messages - deprecated - Move deprecated messages to their own group * Misc minor non-content updates
131 lines
4.9 KiB
Ruby
131 lines
4.9 KiB
Ruby
# This file is licensed under the MIT License (MIT) available on
|
|
# http://opensource.org/licenses/MIT.
|
|
|
|
require 'yaml'
|
|
|
|
module Jekyll
|
|
|
|
class GlossaryPage < Page
|
|
|
|
def initialize(site, base, lang, srcdir, src, output_directory)
|
|
@site = site
|
|
@base = base
|
|
@dir = '/' + output_directory
|
|
|
|
## Output file is the source file base name plus .md for Markdown
|
|
## (converted later to HTML)
|
|
output_file = src.split('.')[0] + ".md"
|
|
|
|
## Read in the file's YAML header
|
|
self.read_yaml(File.join(base, srcdir), src)
|
|
|
|
## Pass in the full path to enable edit-on-github links
|
|
self.data["filename"] = srcdir + '/' + src
|
|
|
|
## Page Title: <title> - Dash Glossary
|
|
self.data["title"] = self.data["required"]["title_max_40_characters_no_formatting"] + " - Dash Glossary"
|
|
|
|
## Output file is v<version>.md (converted later to HTML)
|
|
@name = output_file
|
|
self.process(output_file)
|
|
|
|
## Output full path
|
|
output_full_path = dir + "/" + output_file.gsub('.md', '')
|
|
|
|
self.data['layout'] = 'glossary_entry'
|
|
self.data['category'] = 'glossary_entry'
|
|
|
|
## Combine required (displayed) and optional (non-displayed)
|
|
## synonyms into an array
|
|
if self.data["optional"]["synonyms_and_pluralizations_not_shown_in_glossary"].nil?
|
|
mixed_case_terms = self.data["required"]["synonyms_shown_in_glossary_capitalize_first_letter"]
|
|
else
|
|
mixed_case_terms = self.data["required"]["synonyms_shown_in_glossary_capitalize_first_letter"] +\
|
|
self.data["optional"]["synonyms_and_pluralizations_not_shown_in_glossary"]
|
|
end
|
|
|
|
## Downcase all terms so we can easily detect when we create
|
|
## duplicated autocrossreference links
|
|
terms = Array.new
|
|
mixed_case_terms.each { |term|
|
|
terms.push(term.downcase)
|
|
}
|
|
|
|
## Add all synonyms to the autocrossref hash table for automatic linking
|
|
site.config["crossref"] = site.config["crossref"] ? site.config["crossref"] : {}
|
|
for term in terms do
|
|
site.config["crossref"].merge!({ term => output_full_path }) {
|
|
|key, old_value, new_value|
|
|
|
|
if old_value != new_value
|
|
abort("Error: autocrossref key '#{key}' wants to point to both '#{old_value}' and '#{new_value}'")
|
|
end
|
|
|
|
new_value
|
|
}
|
|
end
|
|
|
|
## Create a newline-containing Markdown-formatted string that
|
|
## includes links for all of our autocrossref-created synonyms.
|
|
## TODO: this should probably be done as an `include`-able
|
|
## template for proper division between the logic and
|
|
## presentation layers
|
|
site.config["glossary_links"] = site.config["glossary_links"] ? site.config["glossary_links"] : ''
|
|
site.config["glossary_links"] \
|
|
+= "[" \
|
|
+ output_full_path \
|
|
+ "]: " \
|
|
+ output_full_path \
|
|
+ ' "' \
|
|
+ self.data["required"]["summary_max_255_characters_no_formatting"].chomp() \
|
|
+ '"' \
|
|
+ "\n"
|
|
|
|
## Add only shown synonyms to the glossary hash-tables-inside-sorted-array
|
|
## for use in the search box and on the master listing page
|
|
site.config["devsearches"]["Glossary"] = site.config["devsearches"]["Glossary"] ? site.config["devsearches"]["Glossary"] : []
|
|
for term in self.data["required"]["synonyms_shown_in_glossary_capitalize_first_letter"] do
|
|
site.config["devsearches"]["Glossary"].unshift({ term => output_full_path })
|
|
end
|
|
|
|
## Sort the shown synonyms array alphabetically (case
|
|
## insensitive). We have to do this here because the version of
|
|
## Jekyll/Liquid we use does not provide the ability to sort
|
|
## arrays when the template is compiled. Higher version of Jekyll
|
|
## do support this feature, so if we upgrade to Jekyll 2.2 or
|
|
## higher, look at doing this at template time to save CPU cycles
|
|
## and increase flexibility
|
|
site.config["devsearches"]["Glossary"].sort_by!{|hash|
|
|
hash.to_s.downcase.gsub(/"=>.*/,'')
|
|
}
|
|
|
|
end
|
|
end
|
|
|
|
class GlossaryPageGenerator < Generator
|
|
def generate(site)
|
|
|
|
#Do nothing if plugin is disabled
|
|
if !ENV['ENABLED_PLUGINS'].nil? and ENV['ENABLED_PLUGINS'].index('glossary').nil?
|
|
print 'Glossary disabled' + "\n"
|
|
return
|
|
end
|
|
|
|
glossary_dir='_data/glossary/en'
|
|
|
|
#Generate each definition page based on templates
|
|
Dir.foreach(glossary_dir) do |file|
|
|
next if file == '.' or file == '..'
|
|
lang = 'en'
|
|
src = file
|
|
srcdir = '_data/glossary/en'
|
|
output_directory = lang + '/glossary/'
|
|
site.pages << GlossaryPage.new(site, site.source, lang, glossary_dir, src, output_directory)
|
|
end
|
|
#TODO definition pages are only generated for English language,
|
|
#but they could also be translated at some point. They would however
|
|
#need to fallback to English when no translation is available.
|
|
end
|
|
end
|
|
|
|
end
|