""" % args topmenu = """
""" #wgmenu = """ [WG] [Doc Info]""" wgmenu = """ [WG]""" emailmenu = """ [Email]""" diffmenu = """ [Diff1] [Diff2]""" nitsmenu = """ [Nits]""" draftiprmenu = """ [IPR]""" rfciprmenu = """ [IPR]""" htmllink = """|html""" docinfo = """
""" nomenu = """" def version(): prelude() print "%(script)s version %(version)s" % args postlude() def usage(): print usagetext def markup(): global args # sys.stderr = sys.stdout extra = "" bcp = None std = None rfc = None wgname = None draftname = None charter = None info = {} attribs = {} fields = cgi.FieldStorage() for key in fields.keys(): attribs[key] = fields[key].value script = os.environ.get("SCRIPT_NAME", sys.argv[0]) if fields.has_key("info"): info = fields["info"].value if (info=="usage"): usage() if (info=="version"): version() return if fields.has_key("--info"): info = fields["--info"].value if (info=="usage"): print usagetext if (info=="version"): print "%(script)s version %(version)s" % args return if fields.has_key("repository"): rfcs = fields["repository"].value + "/rfc" ids = fields["repository"].value + "/internet-drafts" extra = extra + "repository=%s&" % fields["repository"].value else: if os.path.exists("/home/ietf/rfc"): rfcs = "file:///home/ietf/rfc" else: rfcs = "http://tools.ietf.org/rfc" if os.path.exists("/home/ietf/id"): ids = "file:///home/ietf/id" else: ids = "http://tools.ietf.org/id" if fields.has_key("rfc-repository"): rfcs = fields["rfc-repository"].value extra = extra + "rfc-repository=%s&" % fields["rfc-repository"].value if fields.has_key("id-repository"): ids = fields["id-repository"].value extra = extra + "id-repository=%s&" % fields["id-repository"].value if fields.has_key("header"): args["header"] = fields["header"].value if fields.has_key("blurb"): args["blurb"] = fields["blurb"].value if fields.has_key("style"): args["style"] = fields["style"].value if fields.has_key("docinfo"): args["docinfo"] = eval(fields["docinfo"].value) if fields.has_key("robots"): args["robots"] = fields["robots"].value else: args["robots"] = "index,nofollow" if fields.has_key("staticpath"): optstatic = fields["staticpath"].value == "true" args["robots"] = "index,follow" else: optstatic = False if fields.has_key("topmenu"): optmenu = fields["topmenu"].value == "true" #extra = extra + "topmenu=%s&" % fields["topmenu"].value else: optmenu = False if fields.has_key("lineoffset"): optlineoffs = int(fields["lineoffset"].value) #extra = extra + "topmenu=%s&" % fields["topmenu"].value else: optlineoffs = 0 # Handle document information. if fields.has_key("draft"): url = "%s/%s" % (ids, fields["draft"].value) args["title"] = fields["draft"].value[6:].split(".")[0] # if not url[-4:] == ".txt": # url = url + ".txt" elif fields.has_key("rfc"): rfc = fields["rfc"].value url = "%s/rfc%s.txt" % (rfcs, rfc) args["title"] = "rfc "+fields["rfc"].value args["doc"] = "rfc"+rfc elif fields.has_key("bcp"): bcp = fields["bcp"].value url = "%s/bcp/bcp%s.txt" % (rfcs, bcp) args["title"] = "bcp "+fields["bcp"].value args["doc"] = "bcp"+bcp elif fields.has_key("fyi"): fyi = fields["fyi"].value url = "%s/fyi/fyi%s.txt" % (rfcs, fyi) args["title"] = "fyi "+fields["fyi"].value args["doc"] = "fyi"+fyi elif fields.has_key("std"): std = fields["std"].value url = "%s/std/std%s.txt" % (rfcs, std) args["title"] = "std "+fields["std"].value args["doc"] = "std"+std elif fields.has_key("url"): url = fields["url"].value if not re.match("^(http|https|ftp|file)", url): url = "http://%s%s/%s" %( os.environ.get("SERVER_NAME", "ietf.levkowetz.com"), os.path.dirname(script), url) args["title"] = os.path.basename(fields["url"].value) elif fields.has_key("doc") or os.environ.get("PATH_INFO", "/") != "/": if fields.has_key("doc"): doc = fields["doc"].value else: doc = os.environ.get("PATH_INFO", "/")[1:] # Remove extension if doc.rfind(".") > 0: doc = doc[:doc.rfind(".")] if re.match("^[0-9]+$", doc): rfc = doc url = "file:///home/ietf/rfc/rfc%s.txt" % doc title = "RFC " + rfc args["doc"] = "rfc"+rfc elif re.match("rfc[0-9]+$", doc): rfc = doc[3:] url = "%s/%s.txt" % (rfcs, doc) title = "RFC " + rfc args["doc"] = "rfc"+rfc elif re.match("^bcp[0-9]+$", doc): url = "%s/bcp/%s.txt" % (rfcs, doc) title = "BCP " + doc[3:] args["doc"] = "bcp"+doc[3:] elif re.match("^fyi[0-9]+$", doc): url = "%s/fyi/%s.txt" % (rfcs, doc) title = "FYI " + doc[3:] args["doc"] = "fyi"+doc[3:] elif re.match("^std[0-9]+$", doc): url = "%s/std/%s.txt" % (rfcs, doc) title = "STD " + doc[3:] args["doc"] = "std"+doc[3:] elif re.match("^ion-.+$", doc): url = "file:///home/ietf/ion/approved/%s.txt" % doc title = "ION: " + doc args["doc"] = doc elif re.match("^charter-.+$", doc): url = "file:///www/tools.ietf.org/charter/%s.txt" % doc title = doc.split(".")[0] args["doc"] = doc charter = doc elif re.match("draft-[0-9a-z.*-]+$", doc): if not re.match(".*\..+", doc): doc = doc + ".txt" url = "http://tools.ietf.org/id/%s" % doc title = doc.split(".")[0] draftparts = re.match("draft-([0-9a-z]+)-(krb-wg|[0-9a-z]+)-([0-9a-z.*-]+)$", doc) if draftparts and draftparts.group(1) == "ietf": wgname = draftparts.group(2) args["wg"] = wgname args["base"] = os.path.splitext(doc)[0][:-3] draftname = doc args["doc"] = doc else: url = "your document ('%s')." % doc title = "" args["title"] = title elif script == "rfcmarkup": usage() #print """" statuslen = len("BEST CURRENT PRACTICE") # 21 erratalen = len("Errata Exist") # 12 def postlude(): if int(args.get("blurb", "1")): print """
""" % args else: print "" #print fields #print os.environ #print "" return else: prelude() print """
Add HTML markup to a document:
Please provide a document number, draft name or URL: